Payment Gateway এবং অন্যান্য External Services ইন্টিগ্রেশন

Third-party API Integration - মিনজেএস (MeanJS) - Web Development

216

MeanJS স্ট্যাক (MongoDB, Express.js, AngularJS, Node.js) ব্যবহার করে payment gateway এবং অন্যান্য external services ইন্টিগ্রেট করা একটি গুরুত্বপূর্ণ পদক্ষেপ। অ্যাপ্লিকেশনের মধ্যে payment processing, email services, SMS notifications, এবং third-party APIs ইন্টিগ্রেশন সাধারণত প্রয়োজন হয়। এই গাইডে, আমরা কিছু সাধারণ ইন্টিগ্রেশন কেস যেমন payment gateway (যেমন PayPal, Stripe), এবং অন্যান্য এক্সটার্নাল সার্ভিস যেমন email sending এবং SMS notifications এর ইন্টিগ্রেশন দেখবো।


1. Payment Gateway Integration (PayPal and Stripe)

অ্যাপ্লিকেশনটি যদি online payments গ্রহণ করতে চায়, তবে payment gateway integration খুবই গুরুত্বপূর্ণ। আমরা এখানে PayPal এবং Stripe এর মাধ্যমে পেমেন্ট গেটওয়ে ইন্টিগ্রেশন দেখবো।

PayPal Integration

PayPal এর মাধ্যমে পেমেন্ট গ্রহণ করার জন্য, প্রথমে PayPal SDK ইনস্টল করতে হবে এবং Express.js এ সেটআপ করতে হবে।

1.1. PayPal SDK ইনস্টল করা
npm install paypal-rest-sdk --save
1.2. PayPal Configuration

Express.jsPayPal SDK কনফিগার করতে:

// server/config/paypal.js
const paypal = require('paypal-rest-sdk');

paypal.configure({
  'mode': 'sandbox', // 'sandbox' or 'live'
  'client_id': 'YOUR_PAYPAL_CLIENT_ID',
  'client_secret': 'YOUR_PAYPAL_CLIENT_SECRET'
});

module.exports = paypal;
1.3. Payment Route Creation

এখন, Express.js এ পেমেন্ট রুট তৈরি করতে হবে:

// server/routes/payment.routes.js
const express = require('express');
const router = express.Router();
const paypal = require('../config/paypal');

// PayPal payment route
router.post('/payment', function(req, res) {
  const create_payment_json = {
    "intent": "sale",
    "payer": {
      "payment_method": "paypal"
    },
    "redirect_urls": {
      "return_url": "http://localhost:3000/payment/success",
      "cancel_url": "http://localhost:3000/payment/cancel"
    },
    "transactions": [{
      "amount": {
        "currency": "USD",
        "total": req.body.amount
      },
      "description": "Payment for product"
    }]
  };

  paypal.payment.create(create_payment_json, function(error, payment) {
    if (error) {
      console.log(error);
      res.status(500).send(error);
    } else {
      res.status(200).json(payment);
    }
  });
});

module.exports = router;
1.4. Redirect Users to PayPal

এখন, ক্লায়েন্ট সাইডে পেমেন্ট প্রসেস চালানোর জন্য ক্লায়েন্টকে PayPal এ রিডাইরেক্ট করতে হবে।

// public/js/controllers/payment.controller.js
angular.module('meanApp')
  .controller('PaymentController', function($scope, $http) {
    $scope.makePayment = function(amount) {
      $http.post('/payment', { amount: amount })
        .then(function(response) {
          const payment = response.data;
          for (let i = 0; i < payment.links.length; i++) {
            if (payment.links[i].rel === 'approval_url') {
              window.location.href = payment.links[i].href;
            }
          }
        })
        .catch(function(error) {
          console.log('Payment error:', error);
        });
    };
  });

এখানে, ক্লায়েন্ট সাইডে পেমেন্টের জন্য PayPal এর approval_url এ রিডাইরেক্ট করা হয়েছে। এরপর ব্যবহারকারী PayPal এ লগ ইন করে পেমেন্ট নিশ্চিত করতে পারেন।


Stripe Integration

Stripe আরও একটি জনপ্রিয় পেমেন্ট গেটওয়ে, যা অনলাইন পেমেন্ট প্রসেসিং সুবিধা দেয়।

2.1. Stripe SDK ইনস্টল করা
npm install stripe --save
2.2. Stripe Configuration

Express.jsStripe SDK কনফিগার করা:

// server/config/stripe.js
const stripe = require('stripe')('YOUR_STRIPE_SECRET_KEY');
module.exports = stripe;
2.3. Payment Route Creation

Stripe পেমেন্ট গ্রহণ করার জন্য রুট তৈরি:

// server/routes/payment.routes.js
const express = require('express');
const router = express.Router();
const stripe = require('../config/stripe');

// Stripe payment route
router.post('/payment', async function(req, res) {
  try {
    const paymentIntent = await stripe.paymentIntents.create({
      amount: req.body.amount * 100, // Amount in cents
      currency: 'usd',
      payment_method: req.body.payment_method,
      confirm: true,
    });
    res.status(200).send(paymentIntent);
  } catch (error) {
    res.status(500).send(error.message);
  }
});

module.exports = router;
2.4. Client-Side Stripe Payment

ক্লায়েন্ট সাইডে Stripe Elements ব্যবহার করে পেমেন্ট ইনপুট এবং প্রক্রিয়া করা:

<!-- public/views/payment.html -->
<form id="payment-form">
  <input type="text" id="card-holder-name" placeholder="Card holder name" required />
  <div id="card-element"></div> <!-- Stripe card element -->
  <button type="submit">Pay</button>
</form>
// public/js/controllers/payment.controller.js
angular.module('meanApp')
  .controller('PaymentController', function($scope, $http) {
    var stripe = Stripe('YOUR_STRIPE_PUBLIC_KEY');
    var elements = stripe.elements();
    var card = elements.create('card');
    card.mount('#card-element');
    
    $scope.makePayment = function() {
      stripe.createPaymentMethod('card', card).then(function(result) {
        if (result.error) {
          console.log(result.error.message);
        } else {
          $http.post('/payment', { payment_method: result.paymentMethod.id, amount: 10 })
            .then(function(response) {
              console.log('Payment successful', response);
            })
            .catch(function(error) {
              console.log('Payment error:', error);
            });
        }
      });
    };
  });

এখানে, Stripe Elements ব্যবহার করে পেমেন্ট তথ্য সংগ্রহ করা হয়েছে এবং Stripe API এর মাধ্যমে পেমেন্ট প্রসেস করা হয়েছে।


3. Other External Services Integration

3.1. Email Sending (Nodemailer Integration)

অ্যাপ্লিকেশন থেকে ইমেইল পাঠানোর জন্য Nodemailer ব্যবহার করা যায়। এটি SMTP (Simple Mail Transfer Protocol) সার্ভারের মাধ্যমে ইমেইল পাঠাতে সাহায্য করে।

3.1.1. Nodemailer Setup
npm install nodemailer --save
3.1.2. Nodemailer Configuration
// server/config/nodemailer.js
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your-email@gmail.com',
    pass: 'your-email-password'
  }
});

module.exports = transporter;
3.1.3. Send Email Route
// server/routes/email.routes.js
const express = require('express');
const router = express.Router();
const transporter = require('../config/nodemailer');

router.post('/send-email', function(req, res) {
  const mailOptions = {
    from: 'your-email@gmail.com',
    to: req.body.to,
    subject: req.body.subject,
    text: req.body.message
  };

  transporter.sendMail(mailOptions, function(error, info) {
    if (error) {
      return res.status(500).send('Error sending email');
    } else {
      return res.status(200).send('Email sent: ' + info.response);
    }
  });
});

module.exports = router;

এখানে Nodemailer ব্যবহার করে ইমেইল পাঠানো হচ্ছে। আপনি যে কোনো SMTP সার্ভিস ব্যবহার করতে পারেন, যেমন Gmail, SendGrid, Mailgun ইত্যাদি।

3.2. SMS Notification (Twilio Integration)

Twilio ব্যবহার করে অ্যাপ্লিকেশন থেকে SMS পাঠানো যায়। এটি সিম্পল REST API এর মাধ্যমে SMS পাঠানোর সুবিধা দেয়।

3.2.1. Twilio Setup
npm install twilio --save
3.2.2. Twilio Configuration
// server/config/twilio.js
const twilio = require('twilio');
const client = new twilio('TWILIO_ACCOUNT_SID', 'TWILIO_AUTH_TOKEN');

module.exports = client;
3.2.3. Send SMS Route
// server/routes/sms.routes.js
const express = require('express');
const router = express.Router();
const client = require('../config/twilio');

router.post('/send-sms', function(req, res) {
  const { to, body } = req.body;
  client.messages.create({
    body: body,
    from: '+1234567890', // Your Twilio number
    to: to
  })
  .then(message => {
    res.status(200).send('SMS sent: ' + message.sid);
  })
  .catch(error => {
    res.status(500).send('Error sending SMS: ' + error.message);
  });
});

module.exports = router;

এখানে Twilio ব্যবহার করে SMS পাঠানোর জন্য API রুট তৈরি করা হয়েছে।


Conclusion

MeanJS স্ট্যাক ব্যবহার করে payment gateway (PayPal, Stripe), email sending (Nodemailer), এবং SMS notifications (Twilio) এর মতো এক্সটার্নাল সার্ভিসগুলির ইন্টিগ্রেশন বেশ সহজ। আপনি যে কোনো এক্সটার্নাল API বা সার্ভিসে ইন্টিগ্রেট করতে চাইলে তাদের SDK ব্যবহার করতে পারেন, এবং তাদের তথ্য সংগ্রহ এবং ব্যবহার করার মাধ্যমে একটি কার্যকরী সিস্টেম তৈরি করতে পারেন।

এইভাবে, MeanJS স্ট্যাকের মাধ্যমে আপনার অ্যাপ্লিকেশনকে অনেক ধরনের এক্সটার্নাল সেবা এবং ফিচার ইন্টিগ্রেট করা সম্ভব হয়, যা আপনার অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং ব্যবহারকারীর জন্য কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...